1
为何需要不安全代码
AI034Lesson 19
00:00

隐藏的语言内核

Rust 有一个秘密:它实际上 两种语言合而为一。虽然安全 Rust 是你的守护者,但 Rust 编译器本质上是 保守的。它遵循一种严格的哲学:宁可拒绝一个合法且安全的程序,也不愿意外允许一个危险的程序。这在硬件能力与编译器可证明的范围之间留下了一道鸿沟。

严格的现实

想象编译器是一位严格的守门人。在我们的代码示例中,匹配守卫 if y 适用于整个模式组 (4 | 5 | 6)。这种严格的 优先级 反映了借用检查器的工作方式:它对内存施加全局且不容妥协的规则。但底层的计算机硬件本身是 固有的不安全;它并不理解所有权或生命周期的概念。要构建像 split_at_mut这样的高性能工具,我们必须进入 不安全 Rust ‘逃生通道’,执行那些技术上正确但逻辑上过于复杂、超出编译器静态分析能力的操作。

所有技术上安全的代码已验证安全(借用检查器)不安全的必要性

红色与绿色圆圈之间的差距正是不安全 Rust 的存在空间——当静态分析失效时,它使我们能够充分挖掘硬件的全部潜力。

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>